
// ### 主要配置
// 域名  
// 接口路径
// 静态文件 路径
// http  默认配置(混入)
// http  状态码 过滤
// 路由拦截列表
/* 获取 缓存 token 值 */


// token 默认配置与方法
const tokenConfig = {
	// 存储个人登录信息的 key名称
	userInfoKey: "userInfo_origin"
	// 存储个人信息登录 token key名称
	, userInfo_tokenKey: "token"
	// 请求头携带的 token key名称
	, header_tokenKey:"token"
	// 是否提示去登录 结合 http 异常状态处理函数   可造成异步阻断
	, noticToLogin: false
	// 设置个人信息缓存
	,setUserInfo_storage( userInfo ){
		if( userInfo  ){
			const { userInfoKey } = tokenConfig;
			uni.setStorageSync(userInfoKey , userInfo );
		}
	}
	// 清除个人信息缓存
	, removeUserInfo_storage() {
		const { userInfoKey } = tokenConfig;
		return uni.removeStorageSync(userInfoKey);
	}
	// 获取个人信息缓存
	,getUserInfo_storage(){
		const { userInfoKey } = tokenConfig;
		return uni.getStorageSync( userInfoKey  );
	}
	// 获取 token
	,getUserInfo_token(){
		const { getUserInfo_storage , userInfo_tokenKey } = tokenConfig;
		const userInfo_storage = getUserInfo_storage();
		if( userInfo_storage ){
			return userInfo_storage[ userInfo_tokenKey ] || "";
		}
	}
};

const config = {
	// 域名
	$host: ""
	// 接口路径
	,$api: ""
	// 快捷路径
	,$static:"/assets/images/"
	// token基本配置
	,tokenConfig
	// 文件上传的接口路径 -- 图片
	,uploadFileApi_img: ""
	// 文件上传的接口路径 -- 视频
	,uploadFileApi_video: ""
	// http 默认参数配置  参数将进行浅合并方式并入  http默认配置
	//, http_default: {}
	/* 
	// http非正常状态码拦截回调
	// 第一个参数为  responseData
	// 其执行优先级  大于 自定义回调
	// 仅适用走内置扩展方法 $request
	, beforeFail(responseData , { vm  , url} , next) {
		const { statusCode } = responseData;
		if (statusCode === 0) {
			next(`HTTP Error( code ): [ ${ url } ] statusCode=${statusCode} `, false);
		} else {
			next();
		}
	} */
	/* 路由拦截  集合  配置项同vue一致  
		### 注意  此路由拦截配置   只针对 interceptRoutes.routes 里面配置的路由
		interceptRoutes  {
			// 拦截  全局拦截函数  
			beforeEnter({next,to,from}){}
			// 配合需要拦截的路由集合
			routes {
				// 三种类型  String RegExp Array
				// Array item必须为 String
				path
				// 路由拦截函数
				beforeEnter({next,to,from}){}
			}

		}
	*/
	/* , interceptRoutes: {
		routes: [
			{
				path: ""
				, beforeEnter({ next, to, from }) {}
			},
		]
	} */

}

module.exports = config;